#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

//int max_t(int a, int b)
//{
//	int max = 0;
//	int min = a > b ? b : a;
//	for (int i = 1; i <= min; i++)
//	{
//		if (a % i == 0 && b % i == 0)
//			max = i;
//	}
//	return max;
//}
//
//int min_t(int a, int b)
//{
//	int min = a * b;
//	for (int i = min; i > 0; i--)
//	{
//		if (i % a == 0 && i % b == 0)
//			min = i;
//	}
//	return min;
//}
//
//int main()
//{
//	int a, b;
//	scanf("%d %d", &a, &b);
//	int max = max_t(a, b);
//	int min = min_t(a, b);
//	printf("%d %d", max, min);
//}

//void sortArr(int* arr, int n)
//{
//	for (int i = 0; i < n - 1; i++)
//	{
//		int end = i;
//		int ret = arr[end + 1];
//		while (end >= 0)
//		{
//			if (arr[end + 1] < arr[end])
//			{
//				arr[end+1] = arr[end];
//				--end;
//			}
//			else
//			{
//				break;
//			}
//		}
//		arr[end + 1] = ret;
//	}
//}
//
//void printArr(int* arr, int n)
//{
//	for (int i = 0; i < n; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
//
//int main()
//{
//	int n = 0;
//	/*scanf("%d", &n);
//	int* arr = (int *)malloc(sizeof(int) * n);
//	for (int i = 0; i < n; i++)
//	{
//		scanf("%d ", &arr[i]);
//	}*/
//	int arr[10] = { 1,5,2,6,7,9,3,10,4,8 };
//	sortArr(arr, 10);
//	printArr(arr, 10);
//}


//
//int jiaohuan(int a)
//{
//	if (a < 100)
//	{
//		int i = a / 10;
//		int j = a % 10;
//		return j * 10 + i;
//	}
//	else
//	{
//		int i = a % 10;
//		int j = a / 100;
//		int k = a / 10 % 10;
//		return j * 100 + k * 10 + i;
//	}
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	for (int i = 11; i <= n; i++)
//	{
//		int ret = jiaohuan(i);
//		if (issushu(i) && issushu(ret))
//			printf("%d ", i);
//	}
//	return 0;
//}

//void YZW_digit(long long int a,long long  int n)
//{
//	if (n == 1)
//	{
//		printf("%d", a % 10);
//		return;
//	}
//	return YZW_digit(a / 10, n - 1);
//}
//
//int main()
//{
//	long long int n, k;
//	n = 23200210232;
//	k = 7;
//	YZW_digit(n, k);
//	return 0;
//}


//int YZW_fib(int n)
//{
//	if (n == 1 || n == 2)
//		return 1;
//	return YZW_fib(n - 1) + YZW_fib(n - 2);
//}
//
//int main()
//{
//	int n = 0;
//	scanf("%d", &n);
//	printf("%d", YZW_fib(n));
//	return 0;
//}

bool issushu(int a)
{
	for (int i = 2; i < a; i++)
	{
		if (a % i == 0)
			return false;
	}
	return true;
}

int main()
{
	int n = 0;
	scanf("%d", &n);
	for (int i = 6; i <= n; i = i+2)
	{
		for (int j = 2; j < i; j++)
		{
			if (issushu(j) && issushu(i - j))
			{
				printf("%d = %d + %d", i, j, i - j);
				printf("\n");
				break;
			}
		}
	}
	return 0;
}